package tech.yunjing.train.service;


import tech.yunjing.train.entity.Account;

/**
 * 账户接口，定义实现方法
 * Created by ZhangFan on 2017/6/8.
 */
public interface AccountService {
    /**
     * 根据账户名获取账户信息
     *
     * @param accountName 账户名
     * @return Account
     */
    Account findByAccountName(String accountName);
    /**
     * 根据账户Id获取账户信息
     *
     * @param accountId 账户id
     * @return 账户对象
     */
    Account findByAccountId(Integer accountId);
    /**
     * 新增账户
     *
     * @param account 账户对象
     * @return int
     */
    int insertAccount(Account account);

    /**
     * 根据账户名改变用户状态实现逻辑删除
     *
     * @param accountName 账户名
     * @return 删除记录条数
     */
    int deleteAccount(String accountName);

    /**
     * 根据用户名更改支付密码
     *
     * @param accountName        账户名
     * @param oldPaymentPassword 旧支付密码
     * @param newPaymentPassword 新支付密码
     * @return
     */
    int updatePaymentPasswordByAccountName(String accountName, String oldPaymentPassword, String newPaymentPassword);

    /**
     * 根据账户名更改余额
     *
     * @param accountName    账户名
     * @param accountBalance 账户余额
     * @return
     */
    int updateBalanceByAccountName(Double accountBalance, String accountName);
}
